// import {mapState,mapMutations} from 'vuex';
import test from '@/common/test.js';
import store from '@/store/index';
const g_ = {
	data() {
		return {}
	},
	computed: {},
	methods: {
		/**
		 * 获取临时变量
		 * @param {String} key 属性名
		 * @return {Any} 返回的值
		 */
		g_getVar(key) {
			try {
				if (typeof store.state.page[key] == "undefined") {
					return null;
				}
				return store.state.page[key];
			} catch (e) {
				let paterFun = (new Error()).stack.split("\n")[2].trim().split(" ")[1]; //获取调用该方法的父方法名
				//TODO handle the exception
				store.state['page'] = {}; //动态增加一个防止数据丢失
				console.error('[' + paterFun + ' g_getVar Error][严重错误,请务必检查]请检查Vuex中page属性是否存在!' + e);
				return null;
			}
		
		},
		/**
		 * 设置临时变量
		 * @param {String} key 属性名
		 * @param {Boolean} val 值
		 */
		g_setVar(key, val) {
			try {
				//这样才能触发vuex去刷新变量 不然不会自动异步更新
				let page = store.state.page;
				store.state.page = {};
				if(val==null){
					delete(page[key]);//是删除
				}else{
					page[key] = val;//设置
				}
				store.state.page = page;
				return true;
			} catch (e) {
				let paterFun = (new Error()).stack.split("\n")[2].trim().split(" ")[1]; //获取调用该方法的父方法名
				store.state['page'] = {}; //动态增加一个防止数据丢失
				store.state.page[key] = val; //防止数据丢失
				console.error('[' + paterFun + ' g_setVar Error][严重错误,请务必检查]请检查Vuex中page属性是否存在!' + e);
				return false;
			}
		},
		/**
		 * 获取vuex中的属性的值
		 * @param {Object} key vuex属性名
		 */
		g_getVuex(key) {
			if (typeof store.state[key] == "undefined") {
				let paterFun = (new Error()).stack.split("\n")[2].trim().split(" ")[1]; //获取调用该方法的父方法名
				console.error('[' + paterFun + ' g_getVuex Error][严重错误]请检查Vuex中' + key + '属性是否存在!');
				return null;
			}
			return store.state[key];
		},
		/**
		/**
		 * 设置vuex中属性的值
		 * @param {Object} key 名称
		 * @param {Object} val 值
		 */
		g_setVuex(key, val) {
			try {
				//这样才能触发vuex去刷新变量 不然不会自动异步更新
				store.state[key] = val;
				return true;
			} catch (e) {
				console.error('[g_setVuex Error][严重错误]' + e);
				return false;
			}
		}
	}
}

uni.$g = g_.methods;//挂载到uni对象方便js调用
export default g_;
